package com.juma.cartridge.retryque;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface RetryQueueAdmin {

	/**
	 * 查询队列中所有的任务
	 * @return
	 */
	List<RetryTask> getAllTasks();
	
	/**
	 * 恢复已被broken的任务,使其重新被执行
	 * @param taskId
	 * @return
	 */
	boolean recoverTask(Set<Long> taskId);
	
	/**
	 * 停止一个重试任务
	 * @param taskId 任务ID
	 * @param remove 是否删除任务
	 * @return
	 */
	boolean stopTask(Set<Long> taskId);
	
	/**
	 * 清除已停止的任务
	 * @param taskId
	 * @return
	 */
	boolean clearTask(Set<Long> taskId);
	
	/**
	 * 获取指定任务对象
	 * @param taskId
	 * @return
	 */
	Map<Long,RetryTask> getMultiTasks(Set<Long> taskId);
	
}
